#include <mm32_device.h>
#include <stdio.h>
#include "Onboard_KEY.h"
#include "MM_Delay.h"


void OnBoard_KEY_Init()
{
	GPIO_InitTypeDef GPIO_InitStruct;
	
	
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

	/* K1->PA0 */
    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_0;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPD;
    GPIO_Init(GPIOA, &GPIO_InitStruct);

    /* K2->PB12 */
    GPIO_StructInit(&GPIO_InitStruct);
    GPIO_InitStruct.GPIO_Pin  = GPIO_Pin_12;
    GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;
    GPIO_Init(GPIOB, &GPIO_InitStruct);
}

uint8_t OnBoard_KEY_Get()
{
	uint8_t key_num = 0;
	if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_SET)
	{
		MM_DelayMS(5);
		while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == Bit_SET);
		MM_DelayMS(5);
		printf("\r\nK1 Pressed");
		key_num = 1;
	}
	if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12) == Bit_RESET)
	{
		MM_DelayMS(5);
		while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12) == Bit_RESET);
		MM_DelayMS(5);
		printf("\r\nK2 Pressed");
		key_num = 2;
	}
	return key_num;
}